package com.syncomponents.convert;

import com.syncomponents.BeanNameAware;
import com.syncomponents.remoting.IMessage;
import com.syncomponents.support.ITarget;

/**
 * 消息转换
 * 
 * @author sunkey
 * @date Jan 13, 2014
 */
public interface IMessageConvert<E> extends BeanNameAware {

    /**
     * 转换请求消息
     * 
     * @param dobj 消息sdo
     * @param msg 消息文本
     * @return
     */
    <T extends IMessage> T convertReq(E dobj, String msg);

    /**
     * 转换响应消息
     * 
     * @param dobj 消息sdo
     * @param msg 消息文本
     * @return
     */
    Object convertResp(E dobj, Object msg);

    /**
     * 被访问服务对象
     * 
     * @return
     */
    ITarget getTarget();

}
